
#ifndef _CIOMAPPING_H_
#define _CIOMAPPING_H_

#include "pugixml/src/pugixml.hpp"
#include <string>
#include <list>

using namespace std;


class CIOMapping
{
    private:
        static CIOMapping* myInstance;
        static bool myInitialization;
        pugi::xml_document myIOMapping;
        
    public:
        static CIOMapping* getInstance();
        virtual ~CIOMapping();
    
    private:
        CIOMapping();
        bool parseFile();

    public:
        bool init();

        bool getInputAlias(const string theInputNumber, string &theAlias);
        bool getInputLocation(const string theInputNumber, string &theLocation);
        bool getInputMappedOutputs(const string theInputNumber, list<string> &theMappingList);

        bool getOutputAlias(const string theOutputNumber, string &theAlias);
        bool getOutputLocation(const string theOutputNumber, string &theLocation);
        bool getOutputFunction(const string theOutputNumber, string &theOutputFunction);
};

#endif /* _CIOMAPPING_H_ */
